home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 August (Alt) / CHIP 2005-08.1.iso / program / guvenlik / syslinux-3.07.exe / com32 / lib / asprintf.c < prev    next >
Encoding:
C/C++ Source or Header  |  2004-12-20  |  426 b   |  31 lines

  1. /*
  2.  * asprintf.c
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <stdarg.h>
  8.  
  9. int asprintf(char **bufp, const char *format, ...)
  10. {
  11.   va_list ap, ap1;
  12.   int rv;
  13.   int bytes;
  14.   char *p;
  15.  
  16.   va_start(ap, format);
  17.   va_copy(ap1, ap);
  18.  
  19.   bytes = vsnprintf(NULL, 0, format, ap1) + 1;
  20.   va_end(ap1);
  21.  
  22.   *bufp = p = malloc(bytes);
  23.   if ( !p )
  24.     return -1;
  25.   
  26.   rv = vsnprintf(p, bytes, format, ap);
  27.   va_end(ap);
  28.  
  29.   return rv;
  30. }
  31.